function ajax(options) {
    // options 是个对象
    // - url, type, data, success
    options = options || {}

    // 1. 连接
    let xhr = new XMLHttpRequest()

    // 类型
    options.type = options.type || 'get'
    // 是否异步
    options.async = options.async || true

    // 处理数据
    // data = { username: 'abc', password: '123456' } 
    // 转换成 username=abc&password=123456

    let arr = []

    for (let attr in options.data) {
        // console.log(attr)           // 属性名
        // console.log(options.data[attr]) // 属性值
        arr.push(attr + '=' + options.data[attr])
    }

    let str = arr.join('&')

    // 防止用户大小写出错我们需要把所有字母转成小写
    if (options.type.toLowerCase() === 'get') {
        // 2. 请求
        // 地址?username=abc&password=123456
        xhr.open('GET', options.url + '?' + str, options.async)
        // 3. 发送
        xhr.send()
    } else {
        // 2. 请求
        xhr.open('POST', options.url, options.async)
        // 3. 发送
        xhr.setRequestHeader('content-type', 'application/x-www-form-urlencoded')
        // 直接把参数放到send里就可以了
        // username=abc&password=123456
        xhr.send(str)
    }

    // 4. 接收
    xhr.onload = function () {
        options.success && options.success(xhr.responseText)
    }
}